package jbit.dao;

import java.io.Serializable;
import java.util.List;

import jbit.entity.ClaimVoucherDetail;

public interface ClaimVoucherDetailDao {
	/**
	 * 添加报销单详情
	 * @param claimVoucherDetail 报销单详情
	 * @return 如果添加成功返回报销单详情对象，否则，抛出异常。
	 */
    public ClaimVoucherDetail add(ClaimVoucherDetail claimVoucherDetail);
	/**
	 * 根据报销单详情Id删除对象
	 * @param id 主键
	 */
    public void deleteById(Serializable id);
	/**
	 * 修改报销单详情
	 * @param claimVoucherDetail 报销单详情 
	 * @return 如果修改成功返回报销单详情对象，否则，抛出异常。
	 */
    public void update(ClaimVoucherDetail claimVoucherDetail);
    
	/**
	 * 根据报销单详情id加载对象
	 * @param id 主键
	 * @return 返回报销单详情对象
	 */
    public ClaimVoucherDetail get(Serializable id);
	/**
	 * 根据查询条件查询报销单详情数据。
	 * @param condition 查询条件
	 * @return 如果condition为null，返回所有报销单详情数据，否则，使用报销单详情相关条件查询数据
	 */
    public List<ClaimVoucherDetail> find(ClaimVoucherDetail condition);
	
	/**
	 * 根据根据主单id计算总钱数。
	 * @param id 查询条件
	 * @return 如果id为0，返回所有0，否则，返回计算总数
	 */
    public double getTotalAcount(Serializable id);
    /**
	 * 根据根据主单返回明细。
	 * @param id 查询条件
	 * @return 如果id为0，返回null，否则，返回所有明细。
	 */
    public List<ClaimVoucherDetail> getDetails(Serializable id);
}
